package com.moxiao.yfjh.module.order.controller.admin.payRecord.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.moxiao.yfjh.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 支付记录 Excel 导出 Request VO，参数和 PayRecordPageReqVO 是一致的")
@Data
public class PayRecordExportReqVO {

    @Schema(description = "支付订单号（系统生成的唯一的订单号）")
    private String outtradeno;

    @Schema(description = "模块描述")
    private String modulardescribe;

    @Schema(description = "交易类型：支付、退款", example = "2")
    private String type;

    @Schema(description = "操作用户id，支付者、退款者", example = "23764")
    private Long userid;

    @Schema(description = "支付方式：微信、支付宝、银联")
    private String payway;

    @Schema(description = "订单描述", example = "你说的对")
    private String description;

    @Schema(description = "支付订单结束时间，此时间后订单作废")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] expiretime;

    @Schema(description = "支付金额")
    private Long paymoney;

    @Schema(description = "关联业务数据id，账单表id", example = "6054")
    private String dataid;

    @Schema(description = "预支付交易会话标识", example = "21200")
    private String prepayid;

    @Schema(description = "支付状态：1、支付成功 2、转入退款 3、未支付 4、已关闭 5、已撤销（付款码支付）6、用户支付中（付款码支付）7、支付失败(其他原因，如银行返回失败) 11、退款成功 12、退款关闭 13、退款异常，退款到银行发现用户的卡作废或者冻结了，导致原路退款银行卡失败，可前往【商户平台—>交易中心】，手动处理此笔退款")
    private Long paystate;

    @Schema(description = "订单创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] establishdate;

    @Schema(description = "支付时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] paydate;

    @Schema(description = "支付确认时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] confirmdate;

    @Schema(description = "回调的id", example = "924")
    private String callbackid;

    @Schema(description = "回调的摘要")
    private String summary;

    @Schema(description = "支付平台生成的订单号（微信、支付宝）", example = "19750")
    private String transactionid;

    @Schema(description = "交易类型", example = "2")
    private String tradetype;

    @Schema(description = "状态", example = "1")
    private Byte status;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
